const { pool } = require('../config/db');

// 验证管理员权限的中间件
const verifyAdmin = async (req, res, next) => {
  // 打印完整的请求信息
  console.log('=== 请求信息 ===');
  console.log('请求体:', req.body);
  console.log('请求头:', req.headers);
  console.log('查询参数:', req.query);
  console.log('表单数据:', req.fields);
  console.log('===============');

  const username = req.body.username;
  const password = req.body.password;

  // 如果没有提供用户名和密码
  if (!username || !password) {
    return res.status(401).json({
      code: 401,
      message: '请提供管理员账号和密码'
    });
  }

  try {
    // 查询用户信息
    const [users] = await pool.execute(
      'SELECT * FROM users WHERE username = ? AND password = ?',
      [username, password]
    );

    // 验证用户是否存在且是管理员
    if (users.length === 0 || !users[0].is_admin) {
      return res.status(401).json({
        code: 401,
        message: '管理员账号或密码错误'
      });
    }

    // 验证通过，继续处理请求
    next();
  } catch (error) {
    console.error('验证管理员权限失败:', error);
    res.status(500).json({
      code: 500,
      message: '验证管理员权限失败'
    });
  }
};

module.exports = {
  verifyAdmin
};